1. Field of the Invention
The present invention relates to an improved integrated circuit and the process for using it. The invention is particularly applicable to microprocessors and microcomputers and also to hardwired logic circuits which require protection.
2. Description of Related Art
It is known that microprocessors and microcomputers sequentially execute successive instructions of a program stored in a memory, in sync with one or more timing signals referenced relative to one of the clock signals supplied to the microprocessor or microcomputer either internally or externally.
Thus, it is possible to correlate the various phases of this program execution with the clock signals, since the execution of each particular instruction breaks down into several steps timed by one or more successive clock pulses. In effect, in the microprocessors of the prior art, the operation is regularly timed by clock signals generally originating from a sequencing circuit which generates the necessary electrical pulses, particularly by phase shifting the signals relative to the reference clock. Moreover, the sequencing of the actions must factor in the times required to access the various registers, memories and internal devices, but also and especially the signal propagation times in the busses and through the various logic circuits. Consequently, the start and end times of each instruction being perfectly known, it is theoretically possible to know which instruction is being executed in the processing unit of the processor at a given moment, since the program that is running is constituted by a predetermined sequence of instructions.
It is possible, for example, to determine the number of clock pulses delivered since the startup of the program or the resetting of the processing unit, or even the time that has elapsed since an event or an external or internal reference signal.
This capability of being able to observe the running of a program in a microprocessor or a microcomputer is a major drawback when the microprocessor or microcomputer is used in high-security applications. In effect, an ill-intentioned individual would thus be able to know the successive states of the processor and use this information to gain knowledge of certain internal output data.
It is possible to imagine, for example, that a given action on an external signal could take place at different instants as a function of the result of a determined security operation, such as the testing of confidential internal information or the decryption of a message, or even the integrity checking of certain information. Depending on the instant in question, this external signal could supply information on the output data or on the confidential content of the information, and in the case of cryptographic calculations, on the secret encryption key used.
Moreover, there are known microprocessors or microcomputers, such as those marketed by the company SGS Thomson under the reference number ST16XY, which comprise a microprocessor incorporating a random number generator, the reading of which makes it possible to obtain a random number used, for example, for the calculation of encryptions and decryptions.